﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Ninject;
using PGE.AfastamentosTempMVC.Modelo;
using PGE.AfastamentosTempMVC.Servico.Interfaces;
using PGE.AfastamentosTempMVC.Repositorio.Interfaces;

namespace PGE.AfastamentosTempMVC.Servico.Implementacao
{
    public class AfastamentoServico : IAfastamentoServico
    {
        [Inject]
        public IAfastamentoRepositorio AfastamentoRepositorio { get; set; }

        #region IAfastamentoServico Members

        void IAfastamentoServico.Adicionar(Afastamento afastamento)
        {
            AfastamentoRepositorio.Adicionar(afastamento);
        }

        void IAfastamentoServico.Editar(Afastamento afastamento)
        {
            AfastamentoRepositorio.Editar(afastamento);
        }

        void IAfastamentoServico.Deletar(Afastamento afastamento)
        {
            AfastamentoRepositorio.Deletar(afastamento);
        }

        void IAfastamentoServico.DeletarMuitos(Func<Afastamento, bool> where)
        {
            AfastamentoRepositorio.DeletarMuitos(where);
        }

        Afastamento IAfastamentoServico.ObterPorID(int Id)
        {
            return AfastamentoRepositorio.ObterPorID(Id);
        }

        Afastamento IAfastamentoServico.ObterPornome(Func<Afastamento, bool> where)
        {
            return AfastamentoRepositorio.ObterPornome(where);
        }

        Afastamento IAfastamentoServico.ObterPrimeiro()
        {
            return AfastamentoRepositorio.ObterPrimeiro();
        }

        Afastamento IAfastamentoServico.ObterPrimeiro(Func<Afastamento, bool> where)
        {
            return AfastamentoRepositorio.ObterPrimeiro(where);
        }

        IEnumerable<Afastamento> IAfastamentoServico.ListarTudo()
        {
            return AfastamentoRepositorio.ListarTudo();
        }

        IQueryable<Afastamento> IAfastamentoServico.GetQueryable()
        {
            return AfastamentoRepositorio.GetQueryable();
        }

        IEnumerable<Afastamento> IAfastamentoServico.ListarMuitos(Func<Afastamento, bool> where)
        {
            return AfastamentoRepositorio.ListarMuitos(where);
        }

        #endregion
    }
}
